OBJ := $(OBJ_DIR)/PageFrameAllocator.o $(OBJ_DIR)/MemoryZone.o $(OBJ_DIR)/PageTable.o $(OBJ_DIR)/PageFaultAction.o $(OBJ_DIR)/AddressSpace.o

$(OBJ_DIR)/pageman.o : $(OBJ)
	$(LD) $(OBJ) -r -o $@
	
$(OBJ_DIR)/PageFrameAllocator.o : PageFrameAllocator.cpp PageFrameAllocator.h \
      type.h const.h knlvar.h protect.h Multiboot.h list.h MemoryZone.h       \
      ../core/Resource.h bootutil.h Map.h SCI.h
	$(CC) -o $@ PageFrameAllocator.cpp

$(OBJ_DIR)/MemoryZone.o : MemoryZone.cpp MemoryZone.h type.h Page.h list.h
	$(CC) -o $@ MemoryZone.cpp

$(OBJ_DIR)/PageTable.o : PageTable.cpp PageTable.h type.h Map.h Page.h list.h \
      BitArray.h SCI.h ../core/Resource.h ../core/ResourceManager.h
	$(CC) -o $@ PageTable.cpp

$(OBJ_DIR)/PageFaultAction.o : PageFaultAction.cpp PageFaultAction.h \
      ../intrman/ExceptionAction.h
	$(CC) -o $@ PageFaultAction.cpp

$(OBJ_DIR)/AddressSpace.o : AddressSpace.cpp AddressSpace.h
	$(CC) -o $@ AddressSpace.cpp

clean : - rm $(OBJ)

.PHONY : all clean

